/**
 * 生成密码字符串 33~47：!~/ 48~57：0~9 58~64：:~@ 65~90：A~Z 91~96：[~` 97~122：a~z
 * 123~127：{~
 * 
 * @param length
 *            长度
 * @param hasNum
 *            是否包含数字 1-包含 0-不包含
 * @param hasChar
 *            是否包含字母 1-包含 0-不包含
 * @param hasSymbol
 *            是否包含其他符号 1-包含 0-不包含
 * @param caseSense
 *            是否大小写敏感 1-敏感 0-不敏感
 * @param lowerCase
 *            是否只需要小写，只有当hasChar为0且caseSense为1时起作用 1-全部小写 0-全部大写
 */
function genEnCode(length, hasNum, hasChar, hasSymbol, caseSense, lowerCase) {
	var m = "";
	if (hasNum == "0" && hasChar == "0" && hasSymbol == "0")
		return m;
	for (var i = length; i >= 0; i--) {
		var num = Math.floor((Math.random() * 94) + 33);
		if (((hasNum == "0") && ((num >= 48) && (num <= 57)))
				|| ((hasChar == "0") && (((num >= 65) && (num <= 90)) || ((num >= 97) && (num <= 122))))
				|| ((hasSymbol == "0") && (((num >= 33) && (num <= 47))
						|| ((num >= 58) && (num <= 64))
						|| ((num >= 91) && (num <= 96)) || ((num >= 123) && (num <= 127))))) {
			i++;
			continue;
		}
		m += String.fromCharCode(num);
	}
	if (caseSense == "0") {
		m = (lowerCase == "0") ? m.toUpperCase() : m.toLowerCase();
	}
	return m;
}